/**
 * 定义圆的工具函数：接收半径 r，返回包含周长和面积计算方法的对象
 * @param {number} r - 圆的半径（必须为正数）
 * @returns {object} - 包含 circumference（周长）和 area（面积）方法的对象
 */
function circleFun(r) {
  // 校验半径合法性（必须为正数）
  if (typeof r !== 'number' || r <= 0) {
    throw new Error("半径必须是大于 0 的数字！");
  }

  // 计算周长的方法：周长 = 2 * π * r（π 取 Math.PI）
  function circumference() {
    return 2 * Math.PI * r;
  }

  // 计算面积的方法：面积 = π * r²
  function area() {
    return Math.PI * r * r;
  }

  // 返回包含两个方法的对象
  return {
    circumference: circumference,
    area: area
  };
}

// 对外导出函数 circleFu
module.exports = circleFun;